
const vss_s = `
  // 声明 attribute 变量，此变量必须是全局的
  attribute vec4 a_Position;
  attribute float a_PointSize;
  // 定义定点着色器的main函数
  void main() {
    // 为 定点着色器的属性 gl_Position 赋值
    gl_Position = a_Position;
    // 为 定点着色器的属性 gl_PointSize 赋值
    gl_PointSize = a_PointSize;
  }
`;

const fs_s = `
  // 定义 片元着色器 的 main 函数
  void main() {
    // 为 片元着色器 的 唯一属性 gl_FragColor 赋值
    gl_FragColor = vec4(1, 0, 0, 1);
  }
`

function main() {
  const canvas = document.getElementById('webgl');
  if (!canvas) {
    alert('Field for got canvas by id');
    return false;
  }
  const gl = canvas.getContext('webgl');
  if (!gl) {
    alert('Field for got webgl');
    return false;
  }
  if (!initShaders(gl, vss_s, fs_s)) {
    alert('Field for init shaders');
    return false;
  }
  const a_Position = gl.getAttribLocation(gl.program, 'a_Position');
  const new_Positions = new Float32Array([
    0.5, 0.5, 0,
  ]);
  gl.vertexAttrib3fv(a_Position, new_Positions);

  const a_PointSize = gl.getAttribLocation(gl.program, 'a_PointSize');
  gl.vertexAttrib1f(a_PointSize, 20.0);

  gl.clearColor(0, 0, 0, 1);
  gl.clear(gl.COLOR_BUFFER_BIT);

  gl.drawArrays(gl.POINTS, 0, 2);
}